<?php

namespace App\Http\Controllers\Admin\User;

use App\Http\Requests\RegistRequest;
use App\Mail\regMail;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Mail;
use Auth;

class Regist extends Controller
{
    //加载注册模板
    public function index(){
        return view('admin.user.regist');
    }
    //验证注册信息
    public function register(Request $request,RegistRequest $registrequest)
    {
        //将前端提交的所有信息保存到$post中
        $post = $request->all();
        //$user = DB::table('users')->pluck('email');
        $goemail = User::pluck('email');
        //dd($goemail);
        //dd($post['email']);
        foreach ($goemail as $v){
            //dd($v);
            if (!($post['email']==$v)){
                //dd($post['email']);
                //注意：laravel默认不允许一次性给一条数据添加多个字段值
                //默认注册的用户权限为4
                $post['admin_id'] = 4;
                //将哈希加密的密码再保存到密码中
                $post['password'] = bcrypt($post['password']);
                //往post数据中添加一个email_token的随机字符串的值
                $post['email_token'] = bcrypt(str_random(10));
                //dd($post['email_token']);
                //数据填充(用于把数据保存到服务器)
                $user = User::create($post);
                //发送邮件
                Mail::to($user)->send(new regMail($user['email_token']));
                //设置闪存信息，用于_message调用
                session()->flash('success', '账号已注册，请前往邮箱激活！');
                //返回前台首页
                return redirect('/');
                //dd($post);
                //错误提示需要在前端页面加一段代码
            }else{
                //设置闪存信息，用于_message调用
                session()->flash('danger','此邮箱已被注册！');
                //返回前台首页
                return redirect('/regist');
            }
        }
    }
    public function  activate($token){
        //加载地址栏的激活信息，然后比对
        //where方法参数分析:
        //第一个参数是表中的那个字段的名称
        //第二个参数是判断条件,例如:= != > < like等等
        //第三个参数就是需要判断的值
        //需要注意的是:如果判断条件是等于,第二个参数可以省略,直接写第一个字段名称和第三个参数值,除了等于之外,其他的都不能省略
        $user = User::where('email_token','=',$token)->first();
        //判断账号是否需要激活
        if ($user && $user['status']!=1){
            //只有找到用户数据,才进行修改状态,激活账号
            $user->status = 1;
            //将用户信息存入数据库
            $user->save();
            //激活账号后直接自动登录
            Auth::login($user);
            //设置闪存信息
            session()->flash('success','账号激活成功！');
            //跳转到首页
            return redirect('/');
        }else{
            //如果找不到账号
            //设置闪存信息
            session()->flash('danger','账号不存或已激活！');
            //跳转到首页
            return redirect('/');
        }
    }
}
